//该文件用于创建vuex中最核心的store
// 引入vue
import Vue from "vue";
// 引入Vuex
import Vuex from 'vuex'

//使用Vuex插件
Vue.use(Vuex)

// 准备actions，用于响应组件中的动作
const actions = {
  /* increment(context,value){
    context.commit('INCREMENT', value)
  },
  decrement(context,value){
    context.commit('DECREMENT', value)
  }, */
  incrementOdd(context,value){
    if(context.state.sum%2){
      context.commit('INCREMENT', value)
    }
  },
  incrementWait(context,data){
    setTimeout(()=>{
      context.commit('INCREMENT', data.value)
    },data.time)
  },
}
// 准备mutations，用于响应组件中的动作
const mutations = {
  INCREMENT(state,value){
    state.sum+=value
  },
  DECREMENT(state,value){
    state.sum-=value
  },
  ADDPERSON(state,person){
    state.personList.unshift(person)
  }
}
// 准备state，用于存储数据
const state = {
  sum:0,
  school:'湖南电竞大学',
  subject:'母猪产后护理',
  personList:[
    {id:'001',name:'张三'}
  ]
}

// 准备getter，用于对state的数据进行加工和复用，类似计算属性
const getters = {
  bigSum(state){
    return state.sum*10
  }
}

// 创建并暴露store
export default new Vuex.Store({
  actions,mutations,state,getters
})
